﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Senac.ProjetoIntegrador.ViewModel;
using Senac.ProjetoIntegrador.Service;
using Senac.ProjetoIntegrador.Model;

namespace Senac.ProjetoIntegrador.Controllers
{
    public class AtividadeController : Controller
    {
        AtividadeService service = new AtividadeService();

        public ActionResult Index()
        {
            AtividadeViewModel vm = new AtividadeViewModel()
            {
                Atividade = new Atividade()
            };

            return View("CreateAtividade", vm);
        }

        [HttpPost]
        public ActionResult CreateAtividade(AtividadeViewModel vm)
        {
            //new AtividadeService().CreateAtividade(vm.Atividade); //criar uma atividade antes para depois salvar
                                                                    //varias perguntas para a mesma atividade. 
            vm.Atividade.qtdperguntas = 1;
            
            return View("CreatePergunta", vm);
        }

        [HttpPost]
        public JsonResult CreatePergunta(AtividadeViewModel vm)
        {
            IList<Resposta> ListRespostas = new List<Resposta>();
            IList<Pergunta> ListPerguntas = new List<Pergunta>();

            #region  Lists
            int IndexIsResposta = 0;
            for (int i = 0; i < vm.ListBool.Count(); i++)
            {
                if (vm.ListBool[i])
                {
                    IndexIsResposta = i;
                }
            }

            for (int i = 0; i < vm.ListResposta.Count(); i++)
            {
                Resposta resposta = new Resposta();

                if (i == IndexIsResposta)
                    resposta.ind_IsResposta = true;
                else
                    resposta.ind_IsResposta = false;

                resposta.desc_Resposta = vm.ListResposta[i];
                ListRespostas.Add(resposta);

            }
            #endregion

            if (vm.Pergunta != null)
            {
                vm.Pergunta.Ativo = true;
                vm.Pergunta.Respostas = ListRespostas;
                ListPerguntas.Add(vm.Pergunta);
            }

            Atividade _Atividade = new Atividade()
            {
                cod_Atividade = vm.Atividade.cod_Atividade,
                desc_Titulo = vm.Atividade.desc_Titulo,
                ind_Ativo = true,
                Perguntas = ListPerguntas
            };

           
            new AtividadeService().SaveAtividade(_Atividade);


            Atividade newAtividade = new Atividade
            {
                cod_Atividade = _Atividade.cod_Atividade,
                desc_Titulo = vm.Atividade.desc_Titulo,
                qtdperguntas = vm.Atividade.qtdperguntas + 1 
            };

            return Json(newAtividade, JsonRequestBehavior.AllowGet);
        }

        public ActionResult ResponderAtividade(int id = 5)
        {
            AtividadeService atividadeService = new AtividadeService();
            Atividade _Atividade  = atividadeService.getAtividadeById(id);

            AtividadeViewModel vm = new AtividadeViewModel()
            {
                Atividade = _Atividade
            };
            
            return View("ResponderAtividade", vm);
        }
    }
}
